/*
--Para vaciar la base

ALTER TABLE Hotel
DROP constraint "fk_Hotel_Destino_iddestino";
GO
ALTER TABLE ImagenHotel
DROP constraint "fk_ImagenHotel_Hotel_idhotel";
GO
ALTER TABLE ComodidadHotel
DROP constraint "fk_ComodidadHotel_Comodidad_idcomod";
GO
ALTER TABLE ComodidadHotel
DROP constraint "fk_ComodidadHotel_Hotel_idhotel";
GO
ALTER TABLE Tarifa
DROP constraint "fk_Tarifa_Proveedor_idproveedor";
GO
ALTER TABLE Tarifa
DROP constraint "fk_Tarifa_Hotel_idhotel";
GO
ALTER TABLE Temporada
DROP constraint "fk_Temporada_Tarifa_idtarifa";
GO
ALTER TABLE Habitacion
DROP constraint "fk_Habitacion_Hotel_idhotel";
GO
ALTER TABLE PrecioHabitacion
DROP constraint "fk_PrecioHabitacion_Habitacion_idhab";
GO
ALTER TABLE PrecioHabitacion
DROP constraint "fk_PrecioHabitacion_Temporada_idtempo";
GO
ALTER TABLE Cotizacion
DROP constraint "fk_Cotizacion_Usuario_idusuario";
GO
ALTER TABLE Servicio
DROP constraint "fk_Servicio_Hotel_idhotel";
GO
ALTER TABLE Servicio
DROP constraint "fk_Servicio_Cotizacion_idcotiz";
GO
ALTER TABLE ItemServicio
DROP constraint "fk_ItemServicio_Servicio_idcotiz_idserv";
GO
DROP TABLE Destino
GO
DROP TABLE Hotel
GO
DROP TABLE ImagenHotel
GO
DROP TABLE Comodidad
GO
DROP TABLE Proveedor
GO
DROP TABLE Usuario
GO
DROP TABLE Tarifa
GO
DROP TABLE Temporada
GO
DROP TABLE Habitacion
GO
DROP TABLE PrecioHabitacion
GO
DROP TABLE ComodidadHotel
GO
DROP TABLE Cotizacion
GO
DROP TABLE Servicio
GO
DROP TABLE ItemServicio

*/
--Empieza a crear--
--TABLA DESTINO
CREATE table Destino(
	id int NOT NULL IDENTITY(1,1),
	codigo varchar(15),
	nombre varchar(40) NOT NULL,
	activo smallint NOT NULL,
	pais varchar(20) NOT NULL
)
GO
ALTER table Destino
ADD constraint pk_Destino_id primary key (id)
GO


--TABLA HOTEL
CREATE table Hotel(
	id int NOT NULL IDENTITY(1,1),
	codigo varchar(15),
	nombre varchar(40) NOT NULL,
	id_destino int NOT NULL,
	domicilio varchar(70) NOT NULL,
	cod_postal varchar(8),
	activo smallint NOT NULL,
	categoria varchar(12) NOT NULL,
	calificacion smallint NOT NULL,
	cadena varchar(40),
	tel int NOT NULL,
	email varchar(50),
	web varchar(35),
	descripcion varchar(500)
)
GO
ALTER table Hotel
ADD constraint pk_Hotel_id primary key (id),
constraint fk_Hotel_Destino_iddestino foreign key (id_destino) references Destino(id)
GO


--TABLA IMAGENHOTEL
CREATE table ImagenHotel(
	id int NOT NULL IDENTITY(1,1),
	id_hotel int NOT NULL,
	nombre varchar(25) NOT NULL
)
GO
ALTER table ImagenHotel
ADD constraint pk_ImagenHotel_id primary key (id),
constraint fk_ImagenHotel_Hotel_idhotel foreign key (id_hotel) references Hotel(id)
GO


--TABLA COMODIDADES
CREATE table Comodidad(
	id int NOT NULL IDENTITY(1,1),
	nombre varchar(50) NOT NULL
)
GO
ALTER table Comodidad
ADD constraint pk_Comodidad_id primary key (id)
GO


--TABLA COMODIDAD_HOTEL
CREATE table ComodidadHotel(
	id_comod int NOT NULL,
	id_hotel int NOT NULL
)
GO
ALTER table ComodidadHotel
ADD constraint pk_ComodidadHotel_idcomod_idhotel primary key (id_comod,id_hotel),
constraint fk_ComodidadHotel_Comodidad_idcomod foreign key (id_comod) references Comodidad(id),
constraint fk_ComodidadHotel_Hotel_idhotel foreign key (id_hotel) references Hotel(id)
GO


--TABLA PROVEEDOR
CREATE table Proveedor(
	id int NOT NULL IDENTITY(1,1),
	codigo varchar(15),
	nombre varchar(40) NOT NULL,
	activo smallint NOT NULL
)
GO
ALTER table Proveedor
ADD constraint pk_Proveedor_id primary key (id)
GO


--TABLA USUARIO
CREATE table Usuario(
	id int NOT NULL IDENTITY(1,1),
	nombre varchar(15) NOT NULL,
	apellido varchar(25) NOT NULL,
	contrasena varchar(15) NOT NULL,
	activo smallint NOT NULL,
	email varchar(50) NOT NULL,
	tipo varchar(15) NOT NULL
)
GO
ALTER table Usuario
ADD constraint pk_Usuario_id primary key (id)
GO


--TABLA TARIFA
CREATE table Tarifa(
	id int NOT NULL IDENTITY(1,1),
	codigo varchar(15),
	nombre varchar(15) NOT NULL,
	id_hotel int NOT NULL,
	moneda varchar(3) NOT NULL,
	pension varchar(20) NOT NULL,
	activa smallint NOT NULL,
	vig_desde datetime NOT NULL,
	vig_hasta datetime NOT NULL,
	id_prov int NOT NULL
)
GO
ALTER table Tarifa
ADD constraint pk_Tarifa_id primary key (id),
constraint fk_Tarifa_Proveedor_idproveedor foreign key (id_prov) references Proveedor(id),
constraint fk_Tarifa_Hotel_idhotel foreign key (id_hotel) references Hotel(id)
GO


--TABLA TEMPORADA
CREATE table Temporada(
	id int NOT NULL IDENTITY(1,1),
	id_tarifa int NOT NULL,
	uso_desde datetime NOT NULL,
	uso_hasta datetime NOT NULL
)
GO
ALTER table Temporada
ADD constraint pk_Temporada_id primary key (id),
constraint fk_Temporada_Tarifa_idtarifa foreign key (id_tarifa) references Tarifa(id)
GO


--TABLA HABITACION
CREATE table Habitacion(
	id int NOT NULL IDENTITY(1,1),
	codigo varchar(15),
	nombre varchar(25) NOT NULL,
	ocupacion_min smallint NOT NULL,
	ocupacion_max smallint NOT NULL,
	id_hotel int NOT NULL
)
GO
ALTER table Habitacion
ADD constraint pk_Habitacion_id primary key (id),
constraint fk_Habitacion_Hotel_idhotel foreign key (id_hotel) references Hotel(id)
GO


--TABLA PRECIO_HABITACION
CREATE table PrecioHabitacion(
	id int NOT NULL IDENTITY(1,1),
	id_hab int NOT NULL,
	precio decimal(7,2) NOT NULL,
	comision decimal(7,2) NOT NULL,
	impuesto decimal(7,2) NOT NULL,
	base decimal(7,2) NOT NULL,
	id_tempo int NOT NULL
)
GO
ALTER table PrecioHabitacion
ADD constraint pk_PrecioHabitacion_id primary key (id),
constraint fk_PrecioHabitacion_Habitacion_idhab foreign key (id_hab) references Habitacion(id),
constraint fk_PrecioHabitacion_Temporada_idtempo foreign key (id_tempo) references Temporada(id)
GO


--TABLA COTIZACION
CREATE table Cotizacion(
	id int NOT NULL IDENTITY(1,1),
	id_usuario int NOT NULL,
	pasajero varchar(40) NOT NULL,
	email varchar(50),
	dni varchar(12) NOT NULL,
	fecha datetime NOT NULL,
	codigo varchar(8)
)
GO
ALTER table Cotizacion
ADD constraint pk_Cotizacion_id primary key (id),
constraint fk_Cotizacion_Usuario_idusuario foreign key (id_usuario) references Usuario(id)
GO


--TABLA SERVICIO
CREATE table Servicio(
	id int NOT NULL IDENTITY(1,1),
	id_cotiz int NOT NULL,
	nombre varchar(20) NOT NULL,
	fecha_in datetime NOT NULL,
	fecha_out datetime NOT NULL	,
	descripcion varchar(500),
	cant_noches int NOT NULL,
	id_hotel int NOT NULL,
)
GO
ALTER table Servicio
ADD constraint pk_Servicio_idserv_idcotiz primary key (id),
constraint fk_Servicio_Hotel_idhotel foreign key (id_hotel) references Hotel(id),
constraint fk_Servicio_Cotizacion_idcotiz foreign key (id_cotiz) references Cotizacion(id)
GO


--TABLA HABITACIONSERVICIO
CREATE table ItemServicio(
	id int NOT NULL IDENTITY(1,1),
	id_serv int NOT NULL,
	descripcion varchar(500),
	cantidad int NOT NULL,
	moneda varchar(3) NOT NULL,
	precio decimal(7,2) NOT NULL,
	ocupacion smallint NOT NULL,
	impuestos decimal(7,2) NOT NULL
)
GO
ALTER table ItemServicio
ADD constraint pk_ItemServicio_id primary key (id),
constraint fk_ItemServicio_Servicio_idcotiz_idserv foreign key (id_serv) references Servicio(id)
GO
